나는 현재 사용자(user)가 변호사인 a full vertical legal AI Agent를 개발 중이다. 이 에이전트는 대한민국 민사소송에서 원고를 대리하는 변호사가 사용자인 경우를 다루는 법률 인공지능 에이전트다. 사용자가 고객상담문서(client_meeting.md)와 모든 증거문서(서증)들을 정보화한 JSON 문서(evidence_all.json)을 업로드하면 에이전트는 1단계부터 5단계까지 작업을 순차적으로 진행하여 최종적으로 소장(complaint)을 생성한다. 사용자가 고객상담문서(client_meeting.md)와 모든 증거문서(서증)들을 정보화한 JSON 문서(evidence_all.json)을 이미 업로드했음을 가정한다. Stage 1에서 에이전트는 현재 다루고 있는 사건의 개요를 상세하게 파악한다. 에이전트는 `1. Stage 1` 폴더의 Stage_1_new_updated_v3.yaml을 실행하여 결과물을 생성한다. 생성한 결과물들은 `1. Stage 1/outpus` 폴더에 저장되어 있다:
- actio_case_signals.json
- BO.json
- client_goal.json
- evidence_actio_support.json
- evidence_event_candidates.json
- evidence_indexed.json
- fact_actio_support.json
- Fact_Ledger_base.json

Stage 2에서 에이전트는 1단계 결과물들을 입력받아 소송 청구권들을 식별하고 그 청구권들의 사건 종류를 결정한다. 에이전트는 `2. Stage 2`폴더의 Stage_2_updated_A_B_C_v6.yml을 실행하여 결과물을 생성하며, 생성한 결과물들은 `2. Stage 2/outputs` 폴더에 저장되어 있다:
- claim_identification_view.json
- claims_identified_case_type.json
- claims_identified.json

이제 Stage 2의 Task_D와 Task_E 작업을 수행할 프롬프트를 작성하려고 한다. Task_E는 식별된 청구권들에 대해서 소장(complaint)에 기입할 '청구취지'와 '청구원인'을 최대한 자세히 작성하는 것을 목표로 한다. 이를 위해서 Task_D는 Task_E 작업을 위해 필요한 정보를 조립하여 JSON 문서로 생성하는 것을 목표로하며 순수하게 기계적 작업이므로 python code로 작성되어야 한다. 

Task_D는 입력파일로
- claim_identification_view.json
- claims_identified_case_type.json
- claims_identified.json
- 청구취지작성규칙_Mapping_Table.md
- '청구취지작성규칙_{}.md / 여기서 {}은 case_kind 
- evidence_actio_support.json
- evidence_indexed.json
- fact_actio_support.json
- Fact_Ledger_base.json
들을 사용하며 출력파일은 
- 'C-XXX_claim_information.json' 형태다. 

Task_D에서 JSON 정보를 조립하는 상세한 작업 내용을 아래 <Details_of_Task_D>에 제시한다. 

<Details_of_Task_D>

## Sketch of 'JSON SCHEMA' of 'C-XXX_claim_information.json'
- 'claims_identified.json'의 C-XXX별 JSON Block이 basic building block
  - 아래 제시된 JSON 항목들 중 claim_id, claim_title, plaintiffs, defendants, claim_statement는 'claims_identified.json'의 C-XXX별 JSON Block에 존재하는 것들
- 그 외 나머지 JSON 항목들은 아래 제시된 Schema sketch에 설명 제공

<schema_sketch>
```
- claim_id
- claim_title
- plaintiffs
- defendants
- claim_statement
- case_kind / claim_id에 해당하는 claim_type 기입 (claim_type은 'claims_identified_case_type.json'에서 해당 claim_id가 존재하는 block에서 찾을 수 있음)
- "relief_summary_statement_rule" / 신규 생성, '청구취지작성규칙_Mapping_Table.md'에서 매칭된(동일한) case_kind에 해당하는 row에 대응하는 '청구취지작성규칙 파일' cell의 markdown 문서를 Default_Agent 폴더에서 찾아서 그 문서의 내용 전체를 기입
- source_fact_ids / F-XXX, F-XXX, ...
- fact_id_content / 신규 variable, source_fact_ids의 F-XXX별 정보들을 하나의 block으로 아래로 stack
  - Fact_Ledger_base.json에 존재하는 F-XXX별 json block(단, 'action'은 claim_identification_view.json의 해당 fact_id의 'fact_action_text'로 대체)
  - claim_identification_view.json의 해당 fact_id의 'juristic_act' json block
  - claim_identification_view.json의 해당 fact_id의 'party_roles' json block
  - claim_identification_view.json의 해당 fact_id의 'object_spec'~'property_transaction' block
  - claim_identification_view.json의 해당 fact_id의 'linked_event_candidates" json block
- evidence_index_content / 신규 variable, Fact_Ledger_base.json에 존재하는 F-XXX별 json block의 evidence_refs의 개별 항목 E-XXX와 동일한 evidence_index를 evidence_indexed.json에서 찾고, 해당하는 E-XXX가 포함된 json block을 개별적으로 아래로 stack
- 'actio_pauliana_support' / claim_identification_view.json의 해당 source_fact_ids에 존재하는 fact_id의 'actio_pauliana_support' json block
- 'fact_actio_support' / 해당 fact_id에 연결된 source_bo_id에 존재하는 bhxx를 fact_actio_support.json에서 찾고, 존재하면, 해당 bhxx가 존재하는 json block을 아래로 stack하여 붙이고 없으면 무시
- 'evidence_actio_support' / fact_id에 연결된 evidence_index E-XXX가 evidence_actio_support.json에 존재하면 E-XXX가 등장하는 json block을 아래로 stack하여 붙이고 없으면 무시
```
</schema_sketch>

<schema_sketch>에 제시된 정보 구조를 활용하여 작성된 예시를 아래 제시한다. 

<example_JSON>
C-008에는 총 3개의 fact_id (F-017, F-018, F-041)가 존재한다. 이 중에서 F-017, F-018에 해당하는 정보들을 Schema 원리에 따라 아래에 제시하였다. 이 예시는 오로지 참조용으로만 사용하고, 여기 제시된 내용을 그대로 사용하면 안된다. 

{
  "claim_id": "C-008",
  "claim_title": "임차권확인 청구",
  "plaintiffs": [
    "양정숙"
  ],
  "defendants": [
    "윤건우"
  ],
  "claim_statement": "원고 양정숙은 피고 윤건우를 상대로 임차권확인 청구를 할 수 있다.",
  "case_kind": "임차권 확인 청구"
  "relief_summary_statement_rule": [
    당신은 대한민국 민사소송 실무에 따라 `임차권확인 청구` 사건의 `청구취지`만 작성하는 법률 문안 엔진이다. 아래 규칙을 상위 규칙으로 절대적으로 따른다. 출력은 원칙적으로 청구취지 문안만 하며, 청구원인, 판례 설명, `[참조판례]`, 내부 메모는 쓰지 않는다.\n #1. 절대 원칙\n 1. 먼저 확인대상을 정확히 구별한다.\n ... // '청구취지작성규칙_임차권확인청구.md'의 내용을 서술하면서 줄바꿈은 '\n'으로 처리한다.
  ],
  "source_fact_ids": [
    "F-017",
    "F-018",
    "F-041"
  ],
  "fact_id_content": {
    "fact_id": "F-017",
    "source_bo_id": "bh17",
    "type": "법률행위(legal acts)",
    "date": "2024-02-01",
    "parties": ["이수인", "양정숙"],
    "object_spec": "흑석동 상가",
    "amount": "3억 원",
    "fact_action_text": "이수인이 양정숙과 흑석동 상가 임대차계약을 체결하고 상가를 인도함.",
    "evidence_refs": ["E-022 (임대차계약서)"],
    "credibility": "high"
    "juristic_act": {
      "label": "임대차",
      "gubun_multi": [
        "계약행위"
      ],
      "basis_note": "임대차계약",
      "needs_review": false
    },
    "party_roles": {
      "performer": "이수인",
      "performer_type": "자연인",
      "subject": "양정숙",
      "claim_creditor": null,
      "claim_debtor": null,
      "claim_guarantor": null,
      "claim_security_provider": null,
      "all_parties": [
        "이수인",
        "양정숙"
      ],
      "other_parties": []
    },
    "object_spec": "흑석동 상가",
    "fact_object_spec": "흑석동 상가",
    "bo_object": "흑석동 상가",
    "location": null,
    "method": null,
    "outcome": null,
    "amount": "3억 원",
    "amount_source_field": "fact.amount",
    "property_transaction": {
      "asset_id": null,
      "property_label_for_schedule": null,
      "transaction_type": null,
      "transaction_date": null,
      "registration_date": null,
      "registry_office": null,
      "registry_receipt_no": null,
      "registry_recorded_transfer_date": null,
      "market_value_at_act": null,
      "market_value_at_close": null,
      "sale_price": null,
      "consideration_breakdown": []
    },
    "linked_event_candidates": [
      {
        "evidence_index": "E-022",
        "candidate_id": "E-022-EC-01",
        "event_or_state": "event",
        "event_kind": "임대차",
        "event_subkind": null,
        "action_summary": "흑석동 상가 임대차 계약",
        "object_spec": null,
        "amount": "보증금 3억 원, 월 500만 원",
        "event_date": "2024-02-01",
        "identity_signature": "event|임대차|이수인|양정숙|보증금 3억 원|2024-02-01",
        "participants": {
          "actor_candidates": [
            "이수인"
          ],
          "counterparty_candidates": [
            "양정숙"
          ]
        },
        "current_state_candidate": {},
        "succession_candidate": {},
        "affected_asset_cluster_ids": [],
        "confidence": "high"
      }
    ],
    "evidence_index_content": {
      "evidence_index": "E-022",
      "doc_uid": "DOC-022-임대차계약서_이수인_양정숙",
      "title": "임대차계약서",
      "title_normalized": "임대차계약서",
      "doc_type": "처분문서",
      "key_facts": ["흑석동 상가 임대차"],
      "key_dates": ["2024-02-01", "2029-01-31"],
      "key_amounts": ["3억 원", "500만 원"],
      "key_parties": ["이수인", "양정숙"],
      "source_pointer": {"source": "evidence_all.json", "ordinal": 22},
      "doc_semantic_flags": ["claim_doc"],
      "property_cluster_id": "흑석동 상가"     
    },
    "actio_pauliana_support": null
  }, 
  "fact_id_content": {
    "fact_id": "F-018",
    "source_bo_id": "bh18",
    "type": "사실행위(factual acts)",
    "date": "2024-02-02",
    "parties": ["양정숙"],
    "object_spec": "흑석동 상가",
    "amount": null,
    "fact_action_text": "양정숙이 흑석동 상가에서 맛나식당을 운영함.",
    "evidence_refs": ["E-018 (사 업 자 등 록 증)"],
    "credibility": "high",
    "juristic_act": {
      "label": null,
      "gubun_multi": [],
      "basis_note": null,
      "needs_review": null
    },
    "party_roles": {
      "performer": "양정숙",
      "performer_type": "자연인",
      "subject": null,
      "claim_creditor": null,
      "claim_debtor": null,
      "claim_guarantor": null,
      "claim_security_provider": null,
      "all_parties": [
        "양정숙"
      ],
      "other_parties": []
    },
    "object_spec": "흑석동 상가",
    "fact_object_spec": "흑석동 상가",
    "bo_object": null,
    "location": null,
    "method": null,
    "outcome": null,
    "amount": null,
    "amount_source_field": null,
    "property_transaction": {
      "asset_id": null,
      "property_label_for_schedule": null,
      "transaction_type": null,
      "transaction_date": null,
      "registration_date": null,
      "registry_office": null,
      "registry_receipt_no": null,
      "registry_recorded_transfer_date": null,
      "market_value_at_act": null,
      "market_value_at_close": null,
      "sale_price": null,
      "consideration_breakdown": []
    },
    "linked_event_candidates": [
      {
        "evidence_index": "E-018",
        "candidate_id": "E-018-EC-01",
        "event_or_state": "state",
        "event_kind": "사업자등록",
        "event_subkind": null,
        "action_summary": "맛나식당 사업자 등록",
        "object_spec": null,
        "amount": null,
        "event_date": null,
        "identity_signature": "state|사업자등록|양정숙|맛나식당|2024-02-02",
        "participants": {
          "actor_candidates": [
          "양정숙"
          ]
        },
        "current_state_candidate": {
          "state_summary": "영업 중",
          "state_as_of": "2024-02-02",
          "current_user_candidates": [
            "양정숙"
          ]
        },
        "succession_candidate": {},
        "affected_asset_cluster_ids": [],
        "confidence": "high"
      }
    ],    
    "evidence_index_content": {
      "evidence_index": "E-018",
      "doc_uid": "DOC-018-사업자등록증_양정숙",
      "title": "사 업 자 등 록 증",
      "title_normalized": "사 업 자 등 록 증",
      "doc_type": "공문서",
      "key_facts": ["맛나식당 사업자 등록"],
      "key_dates": ["2024-02-01", "2024-02-02"],
      "key_amounts": [],
      "key_parties": ["양정숙"],
      "source_pointer": {"source": "evidence_all.json", "ordinal": 18},
      "doc_semantic_flags": ["status_doc"],
      "property_cluster_id": "흑석동 상가"
    },
    "actio_pauliana_support": null, 
  }, 
  "fact_id_content": {
    "fact_id": "F-041",
...
}
<example_JSON>


## File Location(주의)
Python code 작성 시 IO file들의 위치한 폴더 
<file_location>
- IN
  - claim_identification_view.json -- '/(Root)' 
  - claims_identified_case_type.json -- '/(Root)' 
  - claims_identified.json -- '/(Root)' 
  - 청구취지작성규칙_Mapping_Table.md -- '/Default_Agent' (현재 작업 폴더의 'other_files'폴더에서 찾을 수 있다)
  - '청구취지작성규칙_{}.md -- '/Default_Agent' / 여기서 {}은 case_kind 
  - evidence_actio_support.json -- '/(Root)' 
  - evidence_indexed.json -- '/(Root)' 
  - fact_actio_support.json -- '/(Root)' 
  - Fact_Ledger_base.json -- '/(Root)' 

- OUT
  - 'C-XXX_claim_information.json' -- '/(Root)' 
</file_location>

</Details_of_Task_D>

현재 개발 중인 agent의 'Python Code' 및 'Agent Script'의 기본적인 문법(syntax)을 작성하는 데 사용될 Skill 파일이 main folder('YAML_Combine')에 SKILL.md로 존재하므로 필요할 경우 이 문서를 참조하여 코드를 작성하라. 

그리고, claims_identified.json에서 식별된 청구권들은 다수이므로, 청구권별 json block들을 한 번에 생성하지 않고 Map-Reduce 기법을 사용하여 한 번에 최대 6개씩 병렬로 생성한다. 현재 다루는 사건의 경우, 식별된 청구권들이 총 13개이므로, '6개 > 6개 > 1개' 순서로 C-XXX_claim_information.json 파일들을 생성해야 한다. 

Map-reduce 기법은 'Stage_2_combined_old.yml'의 `- task_name: preD_assembly`, `- name: stage_claim_information_gen`에 제시된 기법을 표준자료로 삼아 작성하면 된다. 

지금까지 제시한 내용을 바탕으로 Stage 2의 Task_D 프롬프트를 작성하여 'Stage_2_Task_D.yaml'로 생성하라. 









